home *** CD-ROM | disk | FTP | other *** search
- package javax.swing;
-
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.ItemSelectable;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.ItemEvent;
- import java.awt.event.ItemListener;
- import java.awt.event.KeyEvent;
- import java.io.IOException;
- import java.io.ObjectOutputStream;
- import java.util.Vector;
- import javax.accessibility.Accessible;
- import javax.accessibility.AccessibleContext;
- import javax.swing.event.ListDataEvent;
- import javax.swing.event.ListDataListener;
- import javax.swing.plaf.ComboBoxUI;
-
- public class JComboBox extends JComponent implements ItemSelectable, ListDataListener, ActionListener, Accessible {
- private static final String uiClassID = "ComboBoxUI";
- protected ComboBoxModel dataModel;
- protected ListCellRenderer renderer;
- protected ComboBoxEditor editor;
- protected int maximumRowCount = 8;
- protected boolean isEditable = false;
- protected Object selectedItemReminder = null;
- protected KeySelectionManager keySelectionManager = null;
- protected String actionCommand = "comboBoxChanged";
- protected boolean lightWeightPopupEnabled = JPopupMenu.getDefaultLightWeightPopupEnabled();
- boolean firedActionEventOnContentsChanged = false;
- boolean firingActionEvent = false;
- // $FF: synthetic field
- static Class class$java$awt$event$ItemListener;
- // $FF: synthetic field
- static Class class$java$awt$event$ActionListener;
-
- public JComboBox() {
- this.setModel(new DefaultComboBoxModel());
- this.init();
- }
-
- public JComboBox(Vector var1) {
- this.setModel(new DefaultComboBoxModel(var1));
- this.init();
- }
-
- public JComboBox(ComboBoxModel var1) {
- this.setModel(var1);
- this.init();
- }
-
- public JComboBox(Object[] var1) {
- this.setModel(new DefaultComboBoxModel(var1));
- this.init();
- }
-
- public void actionPerformed(ActionEvent var1) {
- Object var2 = this.getEditor().getItem();
- this.firedActionEventOnContentsChanged = false;
- this.getUI().setPopupVisible(this, false);
- this.getModel().setSelectedItem(var2);
- if (!this.firedActionEventOnContentsChanged) {
- this.fireActionEvent();
- } else {
- this.firedActionEventOnContentsChanged = false;
- }
-
- }
-
- public void addActionListener(ActionListener var1) {
- super.listenerList.add(class$java$awt$event$ActionListener != null ? class$java$awt$event$ActionListener : (class$java$awt$event$ActionListener = class$("java.awt.event.ActionListener")), var1);
- }
-
- public void addItem(Object var1) {
- this.checkMutableComboBoxModel();
- ((MutableComboBoxModel)this.dataModel).addElement(var1);
- }
-
- public void addItemListener(ItemListener var1) {
- super.listenerList.add(class$java$awt$event$ItemListener != null ? class$java$awt$event$ItemListener : (class$java$awt$event$ItemListener = class$("java.awt.event.ItemListener")), var1);
- }
-
- void checkMutableComboBoxModel() {
- if (!(this.dataModel instanceof MutableComboBoxModel)) {
- throw new RuntimeException("Cannot use this method with a non-Mutable data model.");
- }
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- public void configureEditor(ComboBoxEditor var1, Object var2) {
- var1.setItem(var2);
- }
-
- public void contentsChanged(ListDataEvent var1) {
- ComboBoxModel var2 = this.getModel();
- Object var3 = var2.getSelectedItem();
- if (this.selectedItemReminder == null) {
- if (var3 != null) {
- this.selectedItemChanged();
- }
- } else if (!this.selectedItemReminder.equals(var3)) {
- this.selectedItemChanged();
- }
-
- if (!this.isEditable() && var3 != null) {
- boolean var6 = true;
- Object var8 = var2.getSelectedItem();
- int var4 = 0;
-
- for(int var5 = var2.getSize(); var4 < var5; ++var4) {
- Object var7 = var2.getElementAt(var4);
- if (var7.equals(var8)) {
- var6 = false;
- break;
- }
- }
-
- if (var6) {
- if (var2.getSize() > 0) {
- this.setSelectedIndex(0);
- } else {
- this.setSelectedItem((Object)null);
- }
- }
- }
-
- }
-
- protected KeySelectionManager createDefaultKeySelectionManager() {
- return new DefaultKeySelectionManager(this);
- }
-
- protected void fireActionEvent() {
- if (!this.firingActionEvent) {
- this.firingActionEvent = true;
- ActionEvent var1 = null;
- Object[] var2 = super.listenerList.getListenerList();
-
- for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) {
- if (var2[var3] == (class$java$awt$event$ActionListener != null ? class$java$awt$event$ActionListener : (class$java$awt$event$ActionListener = class$("java.awt.event.ActionListener")))) {
- if (var1 == null) {
- var1 = new ActionEvent(this, 1001, this.getActionCommand());
- }
-
- ((ActionListener)var2[var3 + 1]).actionPerformed(var1);
- }
- }
-
- this.firingActionEvent = false;
- }
-
- }
-
- protected void fireItemStateChanged(ItemEvent var1) {
- Object[] var2 = super.listenerList.getListenerList();
-
- for(int var3 = var2.length - 2; var3 >= 0; var3 -= 2) {
- if (var2[var3] == (class$java$awt$event$ItemListener != null ? class$java$awt$event$ItemListener : (class$java$awt$event$ItemListener = class$("java.awt.event.ItemListener")))) {
- ((ItemListener)var2[var3 + 1]).itemStateChanged(var1);
- }
- }
-
- }
-
- public AccessibleContext getAccessibleContext() {
- if (super.accessibleContext == null) {
- super.accessibleContext = new AccessibleJComboBox(this);
- }
-
- return super.accessibleContext;
- }
-
- public String getActionCommand() {
- return this.actionCommand;
- }
-
- public ComboBoxEditor getEditor() {
- return this.editor;
- }
-
- public Object getItemAt(int var1) {
- return this.dataModel.getElementAt(var1);
- }
-
- public int getItemCount() {
- return this.dataModel.getSize();
- }
-
- public KeySelectionManager getKeySelectionManager() {
- return this.keySelectionManager;
- }
-
- public int getMaximumRowCount() {
- return this.maximumRowCount;
- }
-
- public ComboBoxModel getModel() {
- return this.dataModel;
- }
-
- public ListCellRenderer getRenderer() {
- return this.renderer;
- }
-
- public int getSelectedIndex() {
- Object var1 = this.dataModel.getSelectedItem();
- int var2 = 0;
-
- for(int var3 = this.dataModel.getSize(); var2 < var3; ++var2) {
- Object var4 = this.dataModel.getElementAt(var2);
- if (var4.equals(var1)) {
- return var2;
- }
- }
-
- return -1;
- }
-
- public Object getSelectedItem() {
- return this.dataModel.getSelectedItem();
- }
-
- public Object[] getSelectedObjects() {
- Object var1 = this.getSelectedItem();
- if (var1 == null) {
- return new Object[0];
- } else {
- Object[] var2 = new Object[]{var1};
- return var2;
- }
- }
-
- public ComboBoxUI getUI() {
- return (ComboBoxUI)super.ui;
- }
-
- public String getUIClassID() {
- return "ComboBoxUI";
- }
-
- public void hidePopup() {
- this.setPopupVisible(false);
- }
-
- private void init() {
- this.installAncestorListener();
- ((JComponent)this).setOpaque(true);
- ((JComponent)this).setAlignmentX(0.0F);
- ((JComponent)this).setAlignmentY(0.5F);
- this.updateUI();
- }
-
- public void insertItemAt(Object var1, int var2) {
- this.checkMutableComboBoxModel();
- ((MutableComboBoxModel)this.dataModel).insertElementAt(var1, var2);
- }
-
- protected void installAncestorListener() {
- ((JComponent)this).addAncestorListener(new 1(this));
- }
-
- public void intervalAdded(ListDataEvent var1) {
- this.contentsChanged(var1);
- }
-
- public void intervalRemoved(ListDataEvent var1) {
- this.contentsChanged(var1);
- }
-
- public boolean isEditable() {
- return this.isEditable;
- }
-
- public boolean isFocusTraversable() {
- return this.getUI().isFocusTraversable(this);
- }
-
- public boolean isLightWeightPopupEnabled() {
- return this.lightWeightPopupEnabled;
- }
-
- public boolean isPopupVisible() {
- return this.getUI().isPopupVisible(this);
- }
-
- protected String paramString() {
- String var1 = this.selectedItemReminder != null ? this.selectedItemReminder.toString() : "";
- String var2 = this.isEditable ? "true" : "false";
- String var3 = this.lightWeightPopupEnabled ? "true" : "false";
- return super.paramString() + ",isEditable=" + var2 + ",lightWeightPopupEnabled=" + var3 + ",maximumRowCount=" + this.maximumRowCount + ",selectedItemReminder=" + var1;
- }
-
- public void processKeyEvent(KeyEvent var1) {
- if (var1.getKeyCode() == 9) {
- this.hidePopup();
- }
-
- super.processKeyEvent(var1);
- }
-
- public void removeActionListener(ActionListener var1) {
- super.listenerList.remove(class$java$awt$event$ActionListener != null ? class$java$awt$event$ActionListener : (class$java$awt$event$ActionListener = class$("java.awt.event.ActionListener")), var1);
- }
-
- public void removeAllItems() {
- this.checkMutableComboBoxModel();
- MutableComboBoxModel var1 = (MutableComboBoxModel)this.dataModel;
- int var2 = var1.getSize();
- if (var1 instanceof DefaultComboBoxModel) {
- ((DefaultComboBoxModel)var1).removeAllElements();
- } else {
- for(int var3 = 0; var3 < var2; ++var3) {
- Object var4 = var1.getElementAt(0);
- var1.removeElement(var4);
- }
- }
-
- }
-
- public void removeItem(Object var1) {
- this.checkMutableComboBoxModel();
- ((MutableComboBoxModel)this.dataModel).removeElement(var1);
- }
-
- public void removeItemAt(int var1) {
- this.checkMutableComboBoxModel();
- ((MutableComboBoxModel)this.dataModel).removeElementAt(var1);
- }
-
- public void removeItemListener(ItemListener var1) {
- super.listenerList.remove(class$java$awt$event$ItemListener != null ? class$java$awt$event$ItemListener : (class$java$awt$event$ItemListener = class$("java.awt.event.ItemListener")), var1);
- }
-
- public boolean selectWithKeyChar(char var1) {
- if (this.keySelectionManager == null) {
- this.keySelectionManager = this.createDefaultKeySelectionManager();
- }
-
- int var2 = this.keySelectionManager.selectionForKey(var1, this.getModel());
- if (var2 != -1) {
- this.setSelectedIndex(var2);
- return true;
- } else {
- return false;
- }
- }
-
- protected void selectedItemChanged() {
- if (this.selectedItemReminder != null) {
- this.fireItemStateChanged(new ItemEvent(this, 701, this.selectedItemReminder, 2));
- }
-
- this.selectedItemReminder = this.getModel().getSelectedItem();
- if (this.selectedItemReminder != null) {
- this.fireItemStateChanged(new ItemEvent(this, 701, this.selectedItemReminder, 1));
- }
-
- this.fireActionEvent();
- this.firedActionEventOnContentsChanged = true;
- }
-
- public void setActionCommand(String var1) {
- this.actionCommand = var1;
- }
-
- public void setEditable(boolean var1) {
- boolean var2 = var1 != this.isEditable;
- this.isEditable = var1;
- if (var2) {
- ((JComponent)this).firePropertyChange("editable", this.isEditable ^ true, this.isEditable);
- }
-
- }
-
- public void setEditor(ComboBoxEditor var1) {
- ComboBoxEditor var2 = this.editor;
- if (this.editor != null) {
- this.editor.removeActionListener(this);
- }
-
- this.editor = var1;
- if (this.editor != null) {
- this.editor.addActionListener(this);
- }
-
- ((JComponent)this).firePropertyChange("editor", var2, this.editor);
- }
-
- public void setEnabled(boolean var1) {
- super.setEnabled(var1);
- ((JComponent)this).firePropertyChange("enabled", ((Component)this).isEnabled() ^ true, ((Component)this).isEnabled());
- }
-
- public void setKeySelectionManager(KeySelectionManager var1) {
- this.keySelectionManager = var1;
- }
-
- public void setLightWeightPopupEnabled(boolean var1) {
- this.lightWeightPopupEnabled = var1;
- }
-
- public void setMaximumRowCount(int var1) {
- int var2 = this.maximumRowCount;
- this.maximumRowCount = var1;
- ((JComponent)this).firePropertyChange("maximumRowCount", var2, this.maximumRowCount);
- }
-
- public void setModel(ComboBoxModel var1) {
- ComboBoxModel var2 = this.dataModel;
- if (this.dataModel != null) {
- this.dataModel.removeListDataListener(this);
- }
-
- this.dataModel = var1;
- ((JComponent)this).firePropertyChange("model", var2, this.dataModel);
- this.dataModel.addListDataListener(this);
- ((Container)this).invalidate();
- }
-
- public void setPopupVisible(boolean var1) {
- this.getUI().setPopupVisible(this, var1);
- }
-
- public void setRenderer(ListCellRenderer var1) {
- ListCellRenderer var2 = this.renderer;
- this.renderer = var1;
- ((JComponent)this).firePropertyChange("renderer", var2, this.renderer);
- ((Container)this).invalidate();
- }
-
- public void setSelectedIndex(int var1) {
- int var2 = this.dataModel.getSize();
- if (var1 == -1) {
- this.setSelectedItem((Object)null);
- } else {
- if (var1 < -1 || var1 >= var2) {
- throw new IllegalArgumentException("setSelectedIndex: " + var1 + " out of bounds");
- }
-
- this.setSelectedItem(this.dataModel.getElementAt(var1));
- }
-
- }
-
- public void setSelectedItem(Object var1) {
- this.firedActionEventOnContentsChanged = false;
- this.dataModel.setSelectedItem(var1);
- if (!this.firedActionEventOnContentsChanged) {
- this.fireActionEvent();
- } else {
- this.firedActionEventOnContentsChanged = false;
- }
-
- }
-
- public void setUI(ComboBoxUI var1) {
- super.setUI(var1);
- }
-
- public void showPopup() {
- this.setPopupVisible(true);
- }
-
- public void updateUI() {
- this.setUI((ComboBoxUI)UIManager.getUI(this));
- }
-
- private void writeObject(ObjectOutputStream var1) throws IOException {
- var1.defaultWriteObject();
- if (super.ui != null && this.getUIClassID().equals("ComboBoxUI")) {
- super.ui.installUI(this);
- }
-
- }
- }
-